Graphical User Interface (GUI) provides a user friendly communication interface between a user and a computer software program. However, a typical “user friendly” graphical interface may not be particularly friendly to a user with special needs. Thus, specialized programs have been used to provide accessibility aids to help people use computers more effectively. For example, screen readers can be used for aiding people who have poor vision or who are blind; and, voice input utilities can be used for aiding people to use verbal commands to provide input to a computer program, which typically accepts inputs from a keyboard and/or a mouse. In additional to the accessibility aids, automated testing tools, computer-based training applications and others can also use the accessibility to control other application programs.
A conventional approach (e.g., Microsoft Active Accessibility) enables an accessibility client (e.g., an assistive program) to access the accessibility server (e.g., the target application that displays a GUI on a display screen) through a set of predefined attributes of user interface objects, such as name, role, state, location, parent and child count. The accessibility client discovers the relevant information about the user interface objects by obtaining the run time values of the set of predefined attributes; and, the accessibility server provides at the run time the values for the set of predefined attributes upon request.